
$(function () {


    // 渲染文章类别下拉框
    initClassList()


    function initClassList () {
        // 需求1：渲染下拉框中的数据
        axios({
            url: '/my/article/cates'
        }).then(({ data: res }) => {
            if (res.status !== 0) {
                return layer.msg(res.message)
            }
            let arr = ['<option value="">请选择文章类别</option>']
            res.data.forEach(ele => {
                if (ele.Id < 1) {
                    return;
                }
                arr.push(`<option value="${ele.Id}">${ele.name}</option>`)
            })
            $('[name=cate_id]').empty().html(arr.join(''))
            layui.form.render();
        })
    }

    // // 初始化富文本编辑器
    initEditor()

    // 1. 初始化图片裁剪器
    var img = $('#image')

    // 2. 裁剪选项
    var options = {
        aspectRatio: 400 / 280,
        preview: '.img-preview'
    }

    // 3. 初始化裁剪区域
    img.cropper(options)

    // 定义state状态
    let state = ''
    $('#btn1').on('click', function () {
        state = '已发布'
    })
    $('#btn2').on('click', function () {
        state = '草稿'
    })

    // 上传封面
    $('#chooseBtn').on('click', function () {
        $('#chooseInp').click()
    })
    // 监听flie的change事件
    $('#chooseInp').on('change', function () {
        let files = this.files[0]
        if (files == undefined) {
            return layer.msg('请上传一张封面！')
        }
        // 根据选择的文件 创建一个URL地址
        var newImgURL = URL.createObjectURL(files)
        // 先销毁旧的裁剪区域，再重新设置图片路径，之后再创建新的裁剪区域：
        img
            .cropper('destroy')      // 销毁旧的裁剪区域
            .attr('src', newImgURL)  // 重新设置图片路径
            .cropper(options)        // 重新初始化裁剪区域
    })
    // 文档发布
    $('#pubFrom').on('submit', function (e) {
        e.preventDefault()
        console.log($('#image').prop('src'));
        if ($('#image').prop('src').indexOf('/article') != -1) return layer.msg('请上传一张封面！')
        // 生成FormData对象
        let fd = new FormData(this)
        // 添加状态字段
        fd.append('state', state)
        // 将裁剪后的图片，输出为文件
        img
            .cropper('getCroppedCanvas', { // 创建一个 Canvas 画布
                width: 400,
                height: 280
            })
            .toBlob(function (blob) {       // 将 Canvas 画布上的内容，转化为文件对象
                // 得到文件对象后，才能进行后续的操作
                fd.append('cover_img', blob)
                // 发送 ajax 添加发布&存稿的操作
                axios({
                    method: 'POST',
                    url: '/my/article/add',
                    data: fd
                }).then(({ data: res }) => {
                    if (res.status !== 0) return layer.msg(res.message)
                    // 成功提示
                    layer.msg("恭喜您，发布文章成功！")
                    $('#pubFrom')[0].reset()
                    // 跳转至文章列表页
                    setTimeout(function () {
                        window.parent.document.querySelector('#goList').click()
                    }, 1000)
                })
            });
    })

})